<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 指数
      //   // 从右到左开始计算
      //   console.log(2 ** (2 ** 3));
      //   console.log(2 ** (2 ** 3));
      //   console.log((2 ** 2) ** 3);

      //   //   可选链
      //   var a = {
      //     b: {
      //       c: {
      //         d() {
      //           return "hhhhhh";
      //         },
      //       },
      //     },
      //   };
      //   console.log(a?.b?.c?.d?.());

      //   var obj = new Set([1, 2, 2]);
      //   obj.add(4);
      //   console.log(obj);

      //   var arr1 = [
      //     { name: "zs" },
      //     { name: "ls" },
      //     { name: "ww" },
      //     { name: "zs" },
      //   ];

      //   // 使用 Set 进行去重
      //   var uniqueNames = [...new Set(arr1.map((item) => item.name))];

      //   console.log(uniqueNames); // ["zs", "ls", "ww"]

      // const myMap = new Map([
      //   ["key1", "value1"],
      //   ["key2", "value2"],
      //   ["key3", "value3"],
      // ]);

      // myMap.forEach((value, key) => {
      //   console.log(value, key);
      // });

      var person = {
        name: "何玉婷",
        age: 22,
        gender: "女",
      };

      // Proxy代理  在目标对象中间架设一层拦截
      var p = new Proxy(person, {
        //第一个参数target：被代理的目标对象
        //第二个参数key：读取对象属相名
        // 第三个对象被代理后的对象 p

        get(target, key, receiver) {
          return target[key];
        },
        set() {},
      });

      console.log(person.name);
      console.log(person.age);
      console.log(person.gender);
      console.log(p.name);
      console.log(p.age);
      console.log(p.gender);
    </script>
    item
  </body>
</html>
